/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.46.0(21007360cad28648bdf46282a2592cb47c3a7a6f)
 * Released under the MIT license
 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
 *-----------------------------------------------------------------------------*/
define('vs/basic-languages/sql/sql', ['require', 'require'], require => {
  'use strict'
  var moduleExports = (() => {
    var I = Object.defineProperty
    var S = Object.getOwnPropertyDescriptor
    var O = Object.getOwnPropertyNames
    var C = Object.prototype.hasOwnProperty
    var L = (T, E) => {
        for (var A in E) I(T, A, { get: E[A], enumerable: !0 })
      },
      e = (T, E, A, N) => {
        if ((E && typeof E == 'object') || typeof E == 'function')
          for (let R of O(E))
            !C.call(T, R) && R !== A && I(T, R, { get: () => E[R], enumerable: !(N = S(E, R)) || N.enumerable })
        return T
      }
    var P = T => e(I({}, '__esModule', { value: !0 }), T)
    var M = {}
    L(M, { conf: () => D, language: () => U })
    var D = {
        comments: { lineComment: '--', blockComment: ['/*', '*/'] },
        brackets: [
          ['{', '}'],
          ['[', ']'],
          ['(', ')'],
        ],
        autoClosingPairs: [
          { open: '{', close: '}' },
          { open: '[', close: ']' },
          { open: '(', close: ')' },
          { open: '"', close: '"' },
          { open: "'", close: "'" },
        ],
        surroundingPairs: [
          { open: '{', close: '}' },
          { open: '[', close: ']' },
          { open: '(', close: ')' },
          { open: '"', close: '"' },
          { open: "'", close: "'" },
        ],
      },
      U = {
        defaultToken: '',
        tokenPostfix: '.sql',
        ignoreCase: !0,
        brackets: [
          { open: '[', close: ']', token: 'delimiter.square' },
          { open: '(', close: ')', token: 'delimiter.parenthesis' },
        ],
        keywords: [
          'ABORT',
          'ABSOLUTE',
          'ACTION',
          'ADA',
          'ADD',
          'AFTER',
          'ALL',
          'ALLOCATE',
          'ALTER',
          'ALWAYS',
          'ANALYZE',
          'AND',
          'ANY',
          'ARE',
          'AS',
          'ASC',
          'ASSERTION',
          'AT',
          'ATTACH',
          'AUTHORIZATION',
          'AUTOINCREMENT',
          'AVG',
          'BACKUP',
          'BEFORE',
          'BEGIN',
          'BETWEEN',
          'BIT',
          'BIT_LENGTH',
          'BOTH',
          'BREAK',
          'BROWSE',
          'BULK',
          'BY',
          'CASCADE',
          'CASCADED',
          'CASE',
          'CAST',
          'CATALOG',
          'CHAR',
          'CHARACTER',
          'CHARACTER_LENGTH',
          'CHAR_LENGTH',
          'CHECK',
          'CHECKPOINT',
          'CLOSE',
          'CLUSTERED',
          'COALESCE',
          'COLLATE',
          'COLLATION',
          'COLUMN',
          'COMMIT',
          'COMPUTE',
          'CONFLICT',
          'CONNECT',
          'CONNECTION',
          'CONSTRAINT',
          'CONSTRAINTS',
          'CONTAINS',
          'CONTAINSTABLE',
          'CONTINUE',
          'CONVERT',
          'CORRESPONDING',
          'COUNT',
          'CREATE',
          'CROSS',
          'CURRENT',
          'CURRENT_DATE',
          'CURRENT_TIME',
          'CURRENT_TIMESTAMP',
          'CURRENT_USER',
          'CURSOR',
          'DATABASE',
          'DATE',
          'DAY',
          'DBCC',
          'DEALLOCATE',
          'DEC',
          'DECIMAL',
          'DECLARE',
          'DEFAULT',
          'DEFERRABLE',
          'DEFERRED',
          'DELETE',
          'DENY',
          'DESC',
          'DESCRIBE',
          'DESCRIPTOR',
          'DETACH',
          'DIAGNOSTICS',
          'DISCONNECT',
          'DISK',
          'DISTINCT',
          'DISTRIBUTED',
          'DO',
          'DOMAIN',
          'DOUBLE',
          'DROP',
          'DUMP',
          'EACH',
          'ELSE',
          'END',
          'END-EXEC',
          'ERRLVL',
          'ESCAPE',
          'EXCEPT',
          'EXCEPTION',
          'EXCLUDE',
          'EXCLUSIVE',
          'EXEC',
          'EXECUTE',
          'EXISTS',
          'EXIT',
          'EXPLAIN',
          'EXTERNAL',
          'EXTRACT',
          'FAIL',
          'FALSE',
          'FETCH',
          'FILE',
          'FILLFACTOR',
          'FILTER',
          'FIRST',
          'FLOAT',
          'FOLLOWING',
          'FOR',
          'FOREIGN',
          'FORTRAN',
          'FOUND',
          'FREETEXT',
          'FREETEXTTABLE',
          'FROM',
          'FULL',
          'FUNCTION',
          'GENERATED',
          'GET',
          'GLOB',
          'GLOBAL',
          'GO',
          'GOTO',
          'GRANT',
          'GROUP',
          'GROUPS',
          'HAVING',
          'HOLDLOCK',
          'HOUR',
          'IDENTITY',
          'IDENTITYCOL',
          'IDENTITY_INSERT',
          'IF',
          'IGNORE',
          'IMMEDIATE',
          'IN',
          'INCLUDE',
          'INDEX',
          'INDEXED',
          'INDICATOR',
          'INITIALLY',
          'INNER',
          'INPUT',
          'INSENSITIVE',
          'INSERT',
          'INSTEAD',
          'INT',
          'INTEGER',
          'INTERSECT',
          'INTERVAL',
          'INTO',
          'IS',
          'ISNULL',
          'ISOLATION',
          'JOIN',
          'KEY',
          'KILL',
          'LANGUAGE',
          'LAST',
          'LEADING',
          'LEFT',
          'LEVEL',
          'LIKE',
          'LIMIT',
          'LINENO',
          'LOAD',
          'LOCAL',
          'LOWER',
          'MATCH',
          'MATERIALIZED',
          'MAX',
          'MERGE',
          'MIN',
          'MINUTE',
          'MODULE',
          'MONTH',
          'NAMES',
          'NATIONAL',
          'NATURAL',
          'NCHAR',
          'NEXT',
          'NO',
          'NOCHECK',
          'NONCLUSTERED',
          'NONE',
          'NOT',
          'NOTHING',
          'NOTNULL',
          'NULL',
          'NULLIF',
          'NULLS',
          'NUMERIC',
          'OCTET_LENGTH',
          'OF',
          'OFF',
          'OFFSET',
          'OFFSETS',
          'ON',
          'ONLY',
          'OPEN',
          'OPENDATASOURCE',
          'OPENQUERY',
          'OPENROWSET',
          'OPENXML',
          'OPTION',
          'OR',
          'ORDER',
          'OTHERS',
          'OUTER',
          'OUTPUT',
          'OVER',
          'OVERLAPS',
          'PAD',
          'PARTIAL',
          'PARTITION',
          'PASCAL',
          'PERCENT',
          'PIVOT',
          'PLAN',
          'POSITION',
          'PRAGMA',
          'PRECEDING',
          'PRECISION',
          'PREPARE',
          'PRESERVE',
          'PRIMARY',
          'PRINT',
          'PRIOR',
          'PRIVILEGES',
          'PROC',
          'PROCEDURE',
          'PUBLIC',
          'QUERY',
          'RAISE',
          'RAISERROR',
          'RANGE',
          'READ',
          'READTEXT',
          'REAL',
          'RECONFIGURE',
          'RECURSIVE',
          'REFERENCES',
          'REGEXP',
          'REINDEX',
          'RELATIVE',
          'RELEASE',
          'RENAME',
          'REPLACE',
          'REPLICATION',
          'RESTORE',
          'RESTRICT',
          'RETURN',
          'RETURNING',
          'REVERT',
          'REVOKE',
          'RIGHT',
          'ROLLBACK',
          'ROW',
          'ROWCOUNT',
          'ROWGUIDCOL',
          'ROWS',
          'RULE',
          'SAVE',
          'SAVEPOINT',
          'SCHEMA',
          'SCROLL',
          'SECOND',
          'SECTION',
          'SECURITYAUDIT',
          'SELECT',
          'SEMANTICKEYPHRASETABLE',
          'SEMANTICSIMILARITYDETAILSTABLE',
          'SEMANTICSIMILARITYTABLE',
          'SESSION',
          'SESSION_USER',
          'SET',
          'SETUSER',
          'SHUTDOWN',
          'SIZE',
          'SMALLINT',
          'SOME',
          'SPACE',
          'SQL',
          'SQLCA',
          'SQLCODE',
          'SQLERROR',
          'SQLSTATE',
          'SQLWARNING',
          'STATISTICS',
          'SUBSTRING',
          'SUM',
          'SYSTEM_USER',
          'TABLE',
          'TABLESAMPLE',
          'TEMP',
          'TEMPORARY',
          'TEXTSIZE',
          'THEN',
          'TIES',
          'TIME',
          'TIMESTAMP',
          'TIMEZONE_HOUR',
          'TIMEZONE_MINUTE',
          'TO',
          'TOP',
          'TRAILING',
          'TRAN',
          'TRANSACTION',
          'TRANSLATE',
          'TRANSLATION',
          'TRIGGER',
          'TRIM',
          'TRUE',
          'TRUNCATE',
          'TRY_CONVERT',
          'TSEQUAL',
          'UNBOUNDED',
          'UNION',
          'UNIQUE',
          'UNKNOWN',
          'UNPIVOT',
          'UPDATE',
          'UPDATETEXT',
          'UPPER',
          'USAGE',
          'USE',
          'USER',
          'USING',
          'VACUUM',
          'VALUE',
          'VALUES',
          'VARCHAR',
          'VARYING',
          'VIEW',
          'VIRTUAL',
          'WAITFOR',
          'WHEN',
          'WHENEVER',
          'WHERE',
          'WHILE',
          'WINDOW',
          'WITH',
          'WITHIN GROUP',
          'WITHOUT',
          'WORK',
          'WRITE',
          'WRITETEXT',
          'YEAR',
          'ZONE',
        ],
        operators: [
          'ALL',
          'AND',
          'ANY',
          'BETWEEN',
          'EXISTS',
          'IN',
          'LIKE',
          'NOT',
          'OR',
          'SOME',
          'EXCEPT',
          'INTERSECT',
          'UNION',
          'APPLY',
          'CROSS',
          'FULL',
          'INNER',
          'JOIN',
          'LEFT',
          'OUTER',
          'RIGHT',
          'CONTAINS',
          'FREETEXT',
          'IS',
          'NULL',
          'PIVOT',
          'UNPIVOT',
          'MATCHED',
        ],
        builtinFunctions: [
          'AVG',
          'CHECKSUM_AGG',
          'COUNT',
          'COUNT_BIG',
          'GROUPING',
          'GROUPING_ID',
          'MAX',
          'MIN',
          'SUM',
          'STDEV',
          'STDEVP',
          'VAR',
          'VARP',
          'CUME_DIST',
          'FIRST_VALUE',
          'LAG',
          'LAST_VALUE',
          'LEAD',
          'PERCENTILE_CONT',
          'PERCENTILE_DISC',
          'PERCENT_RANK',
          'COLLATE',
          'COLLATIONPROPERTY',
          'TERTIARY_WEIGHTS',
          'FEDERATION_FILTERING_VALUE',
          'CAST',
          'CONVERT',
          'PARSE',
          'TRY_CAST',
          'TRY_CONVERT',
          'TRY_PARSE',
          'ASYMKEY_ID',
          'ASYMKEYPROPERTY',
          'CERTPROPERTY',
          'CERT_ID',
          'CRYPT_GEN_RANDOM',
          'DECRYPTBYASYMKEY',
          'DECRYPTBYCERT',
          'DECRYPTBYKEY',
          'DECRYPTBYKEYAUTOASYMKEY',
          'DECRYPTBYKEYAUTOCERT',
          'DECRYPTBYPASSPHRASE',
          'ENCRYPTBYASYMKEY',
          'ENCRYPTBYCERT',
          'ENCRYPTBYKEY',
          'ENCRYPTBYPASSPHRASE',
          'HASHBYTES',
          'IS_OBJECTSIGNED',
          'KEY_GUID',
          'KEY_ID',
          'KEY_NAME',
          'SIGNBYASYMKEY',
          'SIGNBYCERT',
          'SYMKEYPROPERTY',
          'VERIFYSIGNEDBYCERT',
          'VERIFYSIGNEDBYASYMKEY',
          'CURSOR_STATUS',
          'DATALENGTH',
          'IDENT_CURRENT',
          'IDENT_INCR',
          'IDENT_SEED',
          'IDENTITY',
          'SQL_VARIANT_PROPERTY',
          'CURRENT_TIMESTAMP',
          'DATEADD',
          'DATEDIFF',
          'DATEFROMPARTS',
          'DATENAME',
          'DATEPART',
          'DATETIME2FROMPARTS',
          'DATETIMEFROMPARTS',
          'DATETIMEOFFSETFROMPARTS',
          'DAY',
          'EOMONTH',
          'GETDATE',
          'GETUTCDATE',
          'ISDATE',
          'MONTH',
          'SMALLDATETIMEFROMPARTS',
          'SWITCHOFFSET',
          'SYSDATETIME',
          'SYSDATETIMEOFFSET',
          'SYSUTCDATETIME',
          'TIMEFROMPARTS',
          'TODATETIMEOFFSET',
          'YEAR',
          'CHOOSE',
          'COALESCE',
          'IIF',
          'NULLIF',
          'ABS',
          'ACOS',
          'ASIN',
          'ATAN',
          'ATN2',
          'CEILING',
          'COS',
          'COT',
          'DEGREES',
          'EXP',
          'FLOOR',
          'LOG',
          'LOG10',
          'PI',
          'POWER',
          'RADIANS',
          'RAND',
          'ROUND',
          'SIGN',
          'SIN',
          'SQRT',
          'SQUARE',
          'TAN',
          'APP_NAME',
          'APPLOCK_MODE',
          'APPLOCK_TEST',
          'ASSEMBLYPROPERTY',
          'COL_LENGTH',
          'COL_NAME',
          'COLUMNPROPERTY',
          'DATABASE_PRINCIPAL_ID',
          'DATABASEPROPERTYEX',
          'DB_ID',
          'DB_NAME',
          'FILE_ID',
          'FILE_IDEX',
          'FILE_NAME',
          'FILEGROUP_ID',
          'FILEGROUP_NAME',
          'FILEGROUPPROPERTY',
          'FILEPROPERTY',
          'FULLTEXTCATALOGPROPERTY',
          'FULLTEXTSERVICEPROPERTY',
          'INDEX_COL',
          'INDEXKEY_PROPERTY',
          'INDEXPROPERTY',
          'OBJECT_DEFINITION',
          'OBJECT_ID',
          'OBJECT_NAME',
          'OBJECT_SCHEMA_NAME',
          'OBJECTPROPERTY',
          'OBJECTPROPERTYEX',
          'ORIGINAL_DB_NAME',
          'PARSENAME',
          'SCHEMA_ID',
          'SCHEMA_NAME',
          'SCOPE_IDENTITY',
          'SERVERPROPERTY',
          'STATS_DATE',
          'TYPE_ID',
          'TYPE_NAME',
          'TYPEPROPERTY',
          'DENSE_RANK',
          'NTILE',
          'RANK',
          'ROW_NUMBER',
          'PUBLISHINGSERVERNAME',
          'OPENDATASOURCE',
          'OPENQUERY',
          'OPENROWSET',
          'OPENXML',
          'CERTENCODED',
          'CERTPRIVATEKEY',
          'CURRENT_USER',
          'HAS_DBACCESS',
          'HAS_PERMS_BY_NAME',
          'IS_MEMBER',
          'IS_ROLEMEMBER',
          'IS_SRVROLEMEMBER',
          'LOGINPROPERTY',
          'ORIGINAL_LOGIN',
          'PERMISSIONS',
          'PWDENCRYPT',
          'PWDCOMPARE',
          'SESSION_USER',
          'SESSIONPROPERTY',
          'SUSER_ID',
          'SUSER_NAME',
          'SUSER_SID',
          'SUSER_SNAME',
          'SYSTEM_USER',
          'USER',
          'USER_ID',
          'USER_NAME',
          'ASCII',
          'CHAR',
          'CHARINDEX',
          'CONCAT',
          'DIFFERENCE',
          'FORMAT',
          'LEFT',
          'LEN',
          'LOWER',
          'LTRIM',
          'NCHAR',
          'PATINDEX',
          'QUOTENAME',
          'REPLACE',
          'REPLICATE',
          'REVERSE',
          'RIGHT',
          'RTRIM',
          'SOUNDEX',
          'SPACE',
          'STR',
          'STUFF',
          'SUBSTRING',
          'UNICODE',
          'UPPER',
          'BINARY_CHECKSUM',
          'CHECKSUM',
          'CONNECTIONPROPERTY',
          'CONTEXT_INFO',
          'CURRENT_REQUEST_ID',
          'ERROR_LINE',
          'ERROR_NUMBER',
          'ERROR_MESSAGE',
          'ERROR_PROCEDURE',
          'ERROR_SEVERITY',
          'ERROR_STATE',
          'FORMATMESSAGE',
          'GETANSINULL',
          'GET_FILESTREAM_TRANSACTION_CONTEXT',
          'HOST_ID',
          'HOST_NAME',
          'ISNULL',
          'ISNUMERIC',
          'MIN_ACTIVE_ROWVERSION',
          'NEWID',
          'NEWSEQUENTIALID',
          'ROWCOUNT_BIG',
          'XACT_STATE',
          'TEXTPTR',
          'TEXTVALID',
          'COLUMNS_UPDATED',
          'EVENTDATA',
          'TRIGGER_NESTLEVEL',
          'UPDATE',
          'CHANGETABLE',
          'CHANGE_TRACKING_CONTEXT',
          'CHANGE_TRACKING_CURRENT_VERSION',
          'CHANGE_TRACKING_IS_COLUMN_IN_MASK',
          'CHANGE_TRACKING_MIN_VALID_VERSION',
          'CONTAINSTABLE',
          'FREETEXTTABLE',
          'SEMANTICKEYPHRASETABLE',
          'SEMANTICSIMILARITYDETAILSTABLE',
          'SEMANTICSIMILARITYTABLE',
          'FILETABLEROOTPATH',
          'GETFILENAMESPACEPATH',
          'GETPATHLOCATOR',
          'PATHNAME',
          'GET_TRANSMISSION_STATUS',
        ],
        builtinVariables: [
          '@@DATEFIRST',
          '@@DBTS',
          '@@LANGID',
          '@@LANGUAGE',
          '@@LOCK_TIMEOUT',
          '@@MAX_CONNECTIONS',
          '@@MAX_PRECISION',
          '@@NESTLEVEL',
          '@@OPTIONS',
          '@@REMSERVER',
          '@@SERVERNAME',
          '@@SERVICENAME',
          '@@SPID',
          '@@TEXTSIZE',
          '@@VERSION',
          '@@CURSOR_ROWS',
          '@@FETCH_STATUS',
          '@@DATEFIRST',
          '@@PROCID',
          '@@ERROR',
          '@@IDENTITY',
          '@@ROWCOUNT',
          '@@TRANCOUNT',
          '@@CONNECTIONS',
          '@@CPU_BUSY',
          '@@IDLE',
          '@@IO_BUSY',
          '@@PACKET_ERRORS',
          '@@PACK_RECEIVED',
          '@@PACK_SENT',
          '@@TIMETICKS',
          '@@TOTAL_ERRORS',
          '@@TOTAL_READ',
          '@@TOTAL_WRITE',
        ],
        pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'],
        tokenizer: {
          root: [
            { include: '@comments' },
            { include: '@whitespace' },
            { include: '@pseudoColumns' },
            { include: '@numbers' },
            { include: '@strings' },
            { include: '@complexIdentifiers' },
            { include: '@scopes' },
            [/[;,.]/, 'delimiter'],
            [/[()]/, '@brackets'],
            [
              /[\w@#$]+/,
              {
                cases: {
                  '@operators': 'operator',
                  '@builtinVariables': 'predefined',
                  '@builtinFunctions': 'predefined',
                  '@keywords': 'keyword',
                  '@default': 'identifier',
                },
              },
            ],
            [/[<>=!%&+\-*/|~^]/, 'operator'],
          ],
          whitespace: [[/\s+/, 'white']],
          comments: [
            [/--+.*/, 'comment'],
            [/\/\*/, { token: 'comment.quote', next: '@comment' }],
          ],
          comment: [
            [/[^*/]+/, 'comment'],
            [/\*\//, { token: 'comment.quote', next: '@pop' }],
            [/./, 'comment'],
          ],
          pseudoColumns: [
            [/[$][A-Za-z_][\w@#$]*/, { cases: { '@pseudoColumns': 'predefined', '@default': 'identifier' } }],
          ],
          numbers: [
            [/0[xX][0-9a-fA-F]*/, 'number'],
            [/[$][+-]*\d*(\.\d*)?/, 'number'],
            [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'],
          ],
          strings: [
            [/N'/, { token: 'string', next: '@string' }],
            [/'/, { token: 'string', next: '@string' }],
          ],
          string: [
            [/[^']+/, 'string'],
            [/''/, 'string'],
            [/'/, { token: 'string', next: '@pop' }],
          ],
          complexIdentifiers: [
            [/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],
            [/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }],
          ],
          bracketedIdentifier: [
            [/[^\]]+/, 'identifier'],
            [/]]/, 'identifier'],
            [/]/, { token: 'identifier.quote', next: '@pop' }],
          ],
          quotedIdentifier: [
            [/[^"]+/, 'identifier'],
            [/""/, 'identifier'],
            [/"/, { token: 'identifier.quote', next: '@pop' }],
          ],
          scopes: [
            [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'],
            [/BEGIN\s+TRY\b/i, { token: 'keyword.try' }],
            [/END\s+TRY\b/i, { token: 'keyword.try' }],
            [/BEGIN\s+CATCH\b/i, { token: 'keyword.catch' }],
            [/END\s+CATCH\b/i, { token: 'keyword.catch' }],
            [/(BEGIN|CASE)\b/i, { token: 'keyword.block' }],
            [/END\b/i, { token: 'keyword.block' }],
            [/WHEN\b/i, { token: 'keyword.choice' }],
            [/THEN\b/i, { token: 'keyword.choice' }],
          ],
        },
      }
    return P(M)
  })()
  return moduleExports
})
